﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Web.Mvc;
using System.Web.Security;

namespace myFinance.Models
{

	public class ChangePasswordModel
	{
		[Required(ErrorMessage = "* A Senha Atual é obrigatório.")]
		[DataType(DataType.Password)]
		[Display(Name = "Senha Atual: ")]
		public string OldPassword { get; set; }

		[Required(ErrorMessage = "* A Nova Senha é obrigatório.")]
		[StringLength(100, ErrorMessage = "* A campo Nova Senha deve ter pelo menos {2} caracteres.", MinimumLength = 6)]
		[DataType(DataType.Password)]
		[Display(Name = "Nova Senha: ")]
		public string NewPassword { get; set; }

		[DataType(DataType.Password)]
		[Display(Name = "Confirmação: ")]
		[Compare("NewPassword", ErrorMessage = "* A nova senha e a confirmação deve ser iguais.")]
		public string ConfirmPassword { get; set; }
	}

	public class LogOnModel
	{
		[Required(ErrorMessage = "* O Usuário é obrigatório.")]
		[Display(Name = "Usuário: ")]
		public string UserName { get; set; }

		[Required(ErrorMessage = "* A Senha é obrigatória.")]
		[DataType(DataType.Password)]
		[Display(Name = "Senha: ")]
		public string Password { get; set; }

		[Display(Name = "Manter-me conectado")]
		public bool RememberMe { get; set; }
	}

	public class RegisterModel
	{
		[Required(ErrorMessage = "* O Usuário é obrigatório.")]
		[Display(Name = "Usuário: ")]
		public string UserName { get; set; }

		[Required(ErrorMessage = "* O Nome é obrigatório.")]
		[Display(Name = "Nome: ")]
		public string Nome { get; set; }

		[Required(ErrorMessage = "* A Data de Nascimento é obrigatória.")]
		[DataType(DataType.DateTime)]
		[Display(Name = "Data Nascimento: ")]
		public DateTime DataNascimento { get; set; }

		[Display(Name = "Sexo: ")]		
		public Boolean Sexo { get; set; }

		[Required(ErrorMessage = "* O E-mail é obrigatório.")]
		[DataType(DataType.EmailAddress)]
		[Display(Name = "E-mail: ")]
		[RegularExpression(@"^([\w\-]+\.)*[\w\- ]+@([\w\- ]+\.)+([\w\-]{2,3})$", ErrorMessage = "* E-mail inválido!")]
		public string Email { get; set; }

		[Required(ErrorMessage = "* A Senha é obrigatório.")]
		[StringLength(100, ErrorMessage = "* A Senha deve ter pelo menos {2} caracteres.", MinimumLength = 6)]
		[DataType(DataType.Password)]
		[Display(Name = "Senha: ")]
		public string Password { get; set; }

		[DataType(DataType.Password)]
		[Display(Name = "Confirmação: ")]
		[Compare("Password", ErrorMessage = "* A nova senha e a confirmação deve ser iguais.")]
		public string ConfirmPassword { get; set; }
	}
}
